package cn.bearspark.article.provider.service;

import cn.bearspark.article.dto.draft.DraftDTO;
import cn.bearspark.article.dto.draft.DraftSimpleDTO;
import cn.bearspark.article.dto.draft.SaveDraftDTO;
import cn.bearspark.common.dto.Page;

/**
 * 专栏草稿的服务接口
 *
 * @author f
 */
public interface DraftService {

    /**
     * 保存草稿
     *
     * @param saveDraftDTO 保存草稿的数据传输对象
     * @return 草稿 id
     */
    long save(SaveDraftDTO saveDraftDTO);

    /**
     * 获取草稿
     *
     * @param draftId 待获取的草稿 id
     * @param userId  获取草稿的用户 id
     * @return 草稿
     */
    DraftDTO get(long draftId, long userId);

    /**
     * 删除草稿
     *
     * @param draftId 待删除的草稿 id
     * @param userId  删除草稿的用户 id
     */
    void delete(long draftId, long userId);

    /**
     * 分页获取草稿列表
     *
     * @param pageNum  页数
     * @param pageSize 元素数
     * @param userId   删除草稿的用户 id
     * @return 草稿列表
     */
    Page<DraftSimpleDTO> page(int pageNum, int pageSize, long userId);
}
